﻿// 3586. 怪异的洗牌.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>


/*


对于一副扑克牌，我们有多种不同的洗牌方式。

一种方法是从中间某个位置分成两半，然后相交换，我们称之为移位（shift）。

比如原来的次序是 123456，从第 4个位置交换，结果就是 561234。

这个方式其实就是数组的循环移位，为了多次进行这个操作，必须使用一种尽可能快的方法来编程实现。

在本题目中，还引入另外一种洗牌方式，就是把前一半（如果总数是奇数，就是(n−1)/2）牌翻转过来，这种操作称之为翻转（flip）。

在前面 shift 操作的结果上进行 flip，结果就是 165234。

当然，如果是实际的扑克牌，直接翻转会造成正反面混在一起的，我们就不管那么多了。

给定 n张牌，初始次序为从 1到 n，经过若干次的 shift 和 flip 操作后，结果会是什么样？

输入格式
第一行包含两个整数 n和 k。n表示牌的数目，k表示下面要进行的操作数量。

第二行包含 k个整数 x，表示每个 shift 操作从第几个位置开始移位。在每一次 shift 操作后都接一个 flip 操作。

输出格式
计算经过给定的 k次 shift 和 flip 操作后，各个位置的数值。

并按次序在一行上输出所有牌张的值，数值之间空格隔开。

数据范围
1≤n≤1000,
1≤k≤10,
1≤x≤n。

输入样例：
6 1
4
输出样例：
1 6 5 2 3 4
*/
int main()
{



	return 0;
}

